

interface UserInfo {
  nickname: string
  avatar: string
  level: string
  gameId: string
  qq_number: string
  registerTime: string
  total_consumption_amount?: number
  role?: string
}



interface PlatformStats {
  onlineUsers: number
  todayItems: number
  activeLives: number
}

Page({
  data: {
    userInfo: {} as UserInfo,
    stats: {} as PlatformStats,
    currentScene: '', // 当前scene参数
    userLevel: {}, // 用户等级信息
    profileVisible: false // 个人资料是否可见
  },

  onLoad(options: any) {
    console.log('个人中心页面加载', options);
    
    // 从全局数据获取scene参数
    const app = getApp<IAppOption>();
    const scene = app.globalData.currentScene;
    this.setData({ currentScene: scene });
    
    // 从全局数据获取用户信息
    this.setData({
      userInfo: app.globalData.userInfo,
      userLevel: app.globalData.userLevel,
      profileVisible: app.globalData.profileVisible
    });
    
    // 初始化平台统计
    this.initPlatformStats();
  },

  async onShow() {
    // 页面显示时实时更新用户信息
    const app = getApp<IAppOption>();
    
    try {
      // 调用app.ts中的fetchGlobalUserInfo方法实时更新用户信息
      await app.fetchGlobalUserInfo();
      
      // 更新页面数据
      this.setData({
        userInfo: app.globalData.userInfo,
        userLevel: app.globalData.userLevel,
        profileVisible: app.globalData.profileVisible
      });
    } catch (error) {
      console.error('更新用户信息失败:', error);
      // 如果更新失败，仍然显示当前缓存的数据
      this.setData({
        userInfo: app.globalData.userInfo,
        userLevel: app.globalData.userLevel,
        profileVisible: app.globalData.profileVisible
      });
    }
  },

  onPullDownRefresh() {
    // 下拉刷新
    // this.fetchUserInfo();
    this.initPlatformStats();
    wx.stopPullDownRefresh();
  },

  // 获取用户信息
  // fetchUserInfo() {
    
  //   userAPI.getUserInfo()
  //     .then((response: any) => {
  //       console.log('获取用户信息成功:', response);
        
  //       // 更新用户信息
  //       if (response.data) {
  //         this.setData({
  //           userInfo: {
  //             ...this.data.userInfo,
  //             ...response.data
  //           }
  //         });
          
  //         // 将用户信息保存到本地存储
  //         wx.setStorageSync('userInfo', response.data);
  //       }
  //     })
  //     .catch((error: any) => {
  //       console.error('获取用户信息失败:', error);
        
  //       // 如果获取失败，显示错误提示
  //       wx.showToast({
  //         title: '获取用户信息失败',
  //         icon: 'none',
  //         duration: 2000
  //       });
  //     });
  // },

  // 初始化平台统计数据
  initPlatformStats() {
    // 模拟获取平台统计数据
    setTimeout(() => {
      const mockStats: PlatformStats = {
        onlineUsers: 128,
        todayItems: 45,
        activeLives: 8
      };
      
      this.setData({ stats: mockStats });
    }, 500);
  },



  // 编辑个人信息
  editProfile() {
    // 检查登录状态
    const token = wx.getStorageSync('accessToken');
    if (!token) {
      wx.showToast({
        title: '请先登录',
        icon: 'none',
        duration: 2000
      });
      
      setTimeout(() => {
        wx.redirectTo({
          url: '/pages/qrlogin/qrlogin'
        });
      }, 2000);
      return;
    }

    wx.navigateTo({
      url: '/pages/edit-profile/edit-profile',
      success: () => {
        console.log('跳转到编辑页面成功');
      },
      fail: (error) => {
        console.error('跳转到编辑页面失败:', error);
        wx.showToast({
          title: '跳转失败',
          icon: 'none',
          duration: 2000
        });
      }
    });
  },

  // 查看我的拍卖
  viewMyAuctions() {
    wx.showToast({
      title: '我的拍卖功能开发中',
      icon: 'none'
    });
  },

  // 查看我的收藏
  viewMyFavorites() {
    wx.showToast({
      title: '我的收藏功能开发中',
      icon: 'none'
    });
  },

  // 设置
  goToSettings() {
    wx.showToast({
      title: '设置功能开发中',
      icon: 'none'
    });
  },

  // 跳转到登录页面
  goToLogin() {
    wx.redirectTo({
      url: '/pages/qrlogin/qrlogin',
      success: () => {
        console.log('跳转到登录页面成功');
      },
      fail: (error) => {
        console.error('跳转到登录页面失败:', error);
        wx.showToast({
          title: '跳转失败',
          icon: 'none',
          duration: 2000
        });
      }
    });
  },

  // 跳转到首页
  goToHome() {
    wx.switchTab({
      url: '/pages/index/index',
      success: () => {
        console.log('跳转到首页成功');
      },
      fail: (error) => {
        console.error('跳转到首页失败:', error);
        wx.showToast({
          title: '跳转失败',
          icon: 'none',
          duration: 2000
        });
      }
    });
  },

  // 退出登录
  logout() {
    wx.showModal({
      title: '确认退出',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除本地存储
          wx.removeStorageSync('accessToken');
          wx.removeStorageSync('userInfo');
          wx.removeStorageSync('tokenType');
          
          wx.showToast({
            title: '已退出登录',
            icon: 'success'
          });
          
          // 跳转到登录页
          setTimeout(() => {
            wx.redirectTo({
              url: '/pages/qrlogin/qrlogin'
            });
          }, 1500);
        }
      }
    });
  },

  // 切换个人资料可见性
  async toggleProfileVisibility() {
    try {
      const newVisibility = !this.data.profileVisible;
      const response = await userAPI.updateProfileVisibility(newVisibility);
      
      if (response) {
        // 更新本地数据
        this.setData({
          profileVisible: newVisibility
        });
        
        // 更新全局数据
        const app = getApp<IAppOption>();
        app.globalData.profileVisible = newVisibility;
        
        // 执行成功后调用更新用户信息
        await app.fetchGlobalUserInfo();
        
        wx.showToast({
          title: newVisibility ? '已显示个人资料' : '已隐藏个人资料',
          icon: 'success'
        });
      }
    } catch (error) {
      console.error('切换个人资料可见性失败:', error);
      wx.showToast({
        title: '操作失败',
        icon: 'error'
      });
    }
  },

  // 页面分享
  onShareAppMessage() {
    return {
      title: '魔力淘 - 魔力宝贝怀旧服交流交易平台',
      path: '/pages/index/index',
      imageUrl: '/static/main-background.png'
    };
  },

  // 分享到朋友圈
  onShareTimeline() {
    return {
      title: '魔力淘 - 魔力宝贝怀旧服交流交易平台',
      imageUrl: '/static/main-background.png'
    };
  }
}); 